﻿namespace Cos.Module.CMS.Data
{
    using Cos.Core.Model.Content;

    /// <summary>
    /// The NavRepository interface signature.
    /// </summary>
    public interface INavRepository
    {
        /// <summary>
        /// Get a Nav object by id.
        /// </summary>
        /// <param name="navId">The id of the Nav.</param>
        /// <returns>The Nav object.</returns>
        Nav GetNav(int navId);


        /// <summary>
        /// Saves the nav.
        /// </summary>
        /// <param name="nav">The nav object.</param>
        /// <returns>The Nav Object.</returns>
        Nav SaveNav(Nav nav);

        /// <summary>
        /// Deletes the nav.
        /// </summary>
        /// <param name="nav">The nav object.</param>
        void DeleteNav(Nav nav);

        /// <summary>
        /// Determines the next nav order.
        /// </summary>
        /// <param name="parentNavId">The parent nav id.</param>
        /// <returns>The order number.</returns>
        int NextNavOrder(int parentNavId);
    }
}
